package com.yunxi.module.system.mapper.dept;

import com.yunxi.framework.mybatis.core.mapper.BaseMapperX;
import com.yunxi.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.yunxi.module.system.model.dept.UserPostDO;
import org.apache.ibatis.annotations.Mapper;

import java.util.Collection;
import java.util.Set;

/**
 * <p>
 * 用户和岗位关联 mapper
 * </p>
 *
 * @author lidy
 * @since 2024-05-08
 */
@Mapper
public interface UserPostMapper extends BaseMapperX<UserPostDO> {

    /**
     * 更具用户编号查询 用户-岗位 关联信息
     *
     * @param userId 用户编号
     * @return 岗位信息
     */
    default Collection<UserPostDO> selectListByUserId(Long userId) {
        return selectList(UserPostDO::getUserId, userId);
    }

    /**
     * 根据用户编号和岗位编号删除
     *
     * @param userId  用户编号
     * @param postIds 岗位编号集合
     */
    default void deleteByUserIdAndPostId(Long userId, Set<Long> postIds) {
        delete(new LambdaQueryWrapperX<UserPostDO>()
                .eq(UserPostDO::getUserId, userId)
                .in(UserPostDO::getPostId, postIds));
    }

    /**
     * 根据用户编号删除
     *
     * @param userId 用户编号
     */
    default void deleteByUserId(Long userId) {
        delete(new LambdaQueryWrapperX<UserPostDO>()
                .eq(UserPostDO::getUserId, userId));
    }
}
